#!/bin/bash
#本模块是整个项目的顶层模块，提供菜单一样的功能
#本脚本运行首先将会显示当前目录下的所有文件夹，用户选择相应的序号后可以进入文件夹并显示文件夹下的文件，
#注意显示的是文件内容的第二行，为了保证显示正确，约定文件第1行为指定脚本解释器，第2行为脚本功能中文简介
#第3行为脚本功能英语简介
clear
echo "----------menu-----------"
#获取当前路径下所有文件夹名称
dir=$(ls -l ./ |awk '/^d/ {print $NF}')
cnt=1
for i in $dir
	do
		if [ "$i" == "imgs" ];then #不统计图片文件夹
			continue
		fi
		linux_list[cnt]=$i #存储菜单到数组linux_list
		echo ${cnt}.${linux_list[cnt]}
		cnt=$[$cnt+1]
	done  
echo "0.exit"
echo

read -p "Please select the operation number you need to perform:" input
#判断输入是否为数字
expr $input "+" 10 &> /dev/null
if [ $? -eq 0 -a $input -lt $cnt ];then
	if [ $input -eq 0 ];then 
		exit 0
	fi
	clear
	cd ${linux_list[input]}
	files=$(ls -l ./ |awk '/^-/ {print $NF}')
	echo "---------------${linux_list[input]} menu-------------------"
	index=1
	shellfile=$(ls -l | grep "^-")
	for sfile in $files #加载功能
	do
		func_list[index]=${sfile} #将文件名存到数组
		content=`awk 'NR==2' ${sfile}` #读取文件第n行内容
		content=${content//#/}
		echo ${index}.${content}
		index=$[$index+1]
	done
	echo "0.exit"
	echo 
	read -p "Please enter the number of the corresponding function:" sfunc
	#判断输入是否为数字
	expr $sfunc "+" 10 &> /dev/null
	if [ $? -eq 0 -a $sfunc -lt $index ];then
		if [ $sfunc -eq 0 ];then
			exit 0
		fi
		bash ${func_list[sfunc]}
		exit 0
	else
		echo "error:input error!exit!"
		exit 0		
	fi
else
  echo "error:input error!exit!"
  exit 0
fi

